home *** CD-ROM | disk | FTP | other *** search
/ Linux Cubed Series 8: LINUX Games / Linux Cubed Series 8 - LINUX Games.iso / games / video / fly8111-.000 / fly8111- / fly8 / symbols.c < prev    next >
C/C++ Source or Header  |  1979-12-31  |  5KB  |  215 lines

  1. /* --------------------------------- symbols.c ------------------------------ */
  2.  
  3. /* This is part of the flight simulator 'fly8'.
  4.  * Author: Eyal Lebedinsky (eyal@ise.canberra.edu.au).
  5. */
  6.  
  7. /* Paint basic HUD symbols.
  8. */
  9.  
  10. #include "fly.h"
  11.  
  12.  
  13. extern void FAR
  14. show_w (int x, int y, int tx, int ty, int color)
  15. {
  16.     int    dx, dy;
  17.  
  18.     dx = tx/4;
  19.     dy = ty/2;
  20.  
  21.     gr_color (color);
  22.     gr_move (x - dx*3, y);
  23.     gr_draw (x - dx*2, y);
  24.     gr_draw (x - dx,   y+dy);
  25.     gr_draw (x,        y);
  26.     gr_draw (x + dx,   y+dy);
  27.     gr_draw (x + dx*2, y);
  28.     gr_draw (x + dx*3, y);
  29. }
  30.  
  31. extern void FAR
  32. show_x (int x, int y, int tx, int ty, int color)
  33. {
  34.     gr_color (color);
  35.     gr_move (x + tx, y + ty);
  36.     gr_draw (x - tx, y - ty);
  37.     gr_move (x + tx, y - ty);
  38.     gr_draw (x - tx, y + ty);
  39. }
  40.  
  41. extern void FAR
  42. show_rect (int x, int y, int tx, int ty, int color, int showx)
  43. {
  44.     gr_color (color);
  45.     gr_move (x + tx, y + ty);
  46.     gr_draw (x + tx, y - ty);
  47.     gr_draw (x - tx, y - ty);
  48.     gr_draw (x - tx, y + ty);
  49.     gr_draw (x + tx, y + ty);
  50.     if (showx)
  51.         show_x (x, y, tx, ty, color);
  52. }
  53.  
  54. extern void FAR
  55. show_brect (int x, int y, int tx, int ty, int ratio, int color, int showx)
  56. {
  57.     int    dx, dy;
  58.  
  59.     dx = fmul (tx, ratio);
  60.     dy = fmul (ty, ratio);
  61.  
  62.     gr_color (color);
  63.     gr_move (x+dx, y+ty);
  64.     gr_draw (x+tx, y+ty);
  65.     gr_draw (x+tx, y+dy);
  66.     gr_move (x+tx, y-dy);
  67.     gr_draw (x+tx, y-ty);
  68.     gr_draw (x+dx, y-ty);
  69.     gr_move (x-dx, y-ty);
  70.     gr_draw (x-tx, y-ty);
  71.     gr_draw (x-tx, y-dy);
  72.     gr_move (x-tx, y+dy);
  73.     gr_draw (x-tx, y+ty);
  74.     gr_draw (x-dx, y+ty);
  75.     if (showx)
  76.         show_x (x, y, tx, ty, color);
  77. }
  78.  
  79. extern void FAR
  80. show_diamond (int x, int y, int tx, int ty, int color, int showx)
  81. {
  82.     gr_color (color);
  83.     gr_move (x-tx, y);
  84.     gr_draw (x,    y-ty);
  85.     gr_draw (x+tx, y);
  86.     gr_draw (x,    y+ty);
  87.     gr_draw (x-tx, y);
  88.     if (showx)
  89.         show_x (x, y, tx, ty, color);
  90. }
  91.  
  92. extern void FAR
  93. show_plus (int x, int y, int tx, int ty, int color)
  94. {
  95.     gr_color (color);
  96.     gr_move (x - tx, y);
  97.     gr_draw (x + tx, y);
  98.     gr_move (x,      y - ty);
  99.     gr_draw (x,      y + ty);
  100. }
  101.  
  102. extern void FAR
  103. show_bplus (int x, int y, int tx, int ty, int ratio, int color)
  104. {
  105.     int    dx, dy;
  106.  
  107.     dx = fmul (tx, ratio);
  108.     dy = fmul (ty, ratio);
  109.  
  110.     gr_color (color);
  111.     gr_move (x - tx, y);
  112.     gr_draw (x - dx, y);
  113.     gr_move (x + dx, y);
  114.     gr_draw (x + tx, y);
  115.     gr_move (x,      y - ty);
  116.     gr_draw (x,      y - dy);
  117.     gr_move (x,      y + dy);
  118.     gr_draw (x,      y + ty);
  119. }
  120.  
  121. extern void FAR
  122. show_fpm (int x, int y, int rx, int ry, int tx, int ty, int color, int shape)
  123. {
  124.     gr_color (color);
  125.     if (2 == shape)                    /* round */
  126.         gr_ellipse (x, y, rx, ry);
  127.     else if (shape)                    /* square */
  128.         show_diamond (x, y, rx, ry, color, 0);
  129.  
  130.     gr_move (x,    y-ry);
  131.     gr_draw (x,    y-ty);
  132.     gr_move (x+rx, y);
  133.     gr_draw (x+tx, y);
  134.     gr_move (x-rx, y);
  135.     gr_draw (x-tx, y);
  136. }
  137.  
  138. extern void FAR
  139. show_dir (int x, int y, int rx, int ry, int tx, int ty, int color)
  140. {
  141.     gr_color (color);
  142.     gr_move (x+rx, y);
  143.     gr_draw (x+tx, y);
  144.     gr_move (x-rx, y);
  145.     gr_draw (x-tx, y);
  146.     gr_move (x,    y-ry);
  147.     gr_draw (x,    y-ty);
  148. }
  149.  
  150. extern void FAR
  151. show_dir1 (int x, int y, int rx, int ry, int tx, int ty, int sa, int ca,
  152.     int color,
  153.     int orgx, int orgy, int sx, int sy, int shifty)
  154. {
  155.     int    x0, y0, x1, y1, x2, y2, x3, y3;
  156.  
  157.     x0 = fmul (rx, ca);        /* wing inside */
  158.     y0 = fmul (rx, sa);
  159.     x1 = fmul (tx, ca);        /* wing outside */
  160.     y1 = fmul (tx, sa);
  161.     x2 = fmul (rx, sa);        /* tail inside */
  162.     y2 = fmul (rx, ca);
  163.     x3 = fmul (tx, sa);        /* tail outside */
  164.     y3 = fmul (tx, ca);
  165.     x3 -= x3>>2;            /* shorter tail? */
  166.     y3 -= y3>>2;
  167.  
  168.     gr_color (color);
  169. #if 0
  170.     gr_move (x+x0,      y+y0);    /* right wing */
  171.     gr_draw (x+x1,      y+y1);
  172.     gr_draw (x+x1-x2/4, y+y1+y2/4);    /* tip */
  173.  
  174.     gr_move (x-x0,      y-y0);    /* left wing */
  175.     gr_draw (x-x1,      y-y1);
  176.     gr_draw (x-x1-x2/4, y-y1+y2/4);    /* tip */
  177.  
  178.     gr_move (x+x2,      y-y2);    /* tail */
  179.     gr_draw (x+x3,      y-y3);
  180. #else
  181.     add_segment (x+x0, y+y0, x+x1,      y+y1,
  182.         orgx, orgy, sx, sy, shifty);            /* right wing */
  183.     add_segment (x+x1, y+y1, x+x1-x2/4, y+y1+y2/4,
  184.         orgx, orgy, sx, sy, shifty);            /* tip */
  185.     add_segment (x-x0, y-y0, x-x1,      y-y1,
  186.         orgx, orgy, sx, sy, shifty);            /* left wing */
  187.     add_segment (x-x1, y-y1, x-x1-x2/4, y-y1+y2/4,
  188.         orgx, orgy, sx, sy, shifty);            /* tip */
  189.     add_segment (x+x2, y-y2, x+x3,      y-y3,
  190.         orgx, orgy, sx, sy, shifty);            /* tail */
  191. #endif
  192. }
  193.  
  194. extern void FAR
  195. show_ptr (int x, int y, int rx, int ry, int tx, int ty, int color, int round)
  196. {
  197.     gr_color (color);
  198.     if (round)
  199.         gr_ellipse (x, y, rx, ry);
  200.     else
  201.         show_rect (x, y, rx, ry, color, 0);
  202.     gr_move (x+tx/4, y-ty/4);
  203.     gr_draw (x+tx,   y-ty);
  204. }
  205.  
  206. extern void FAR
  207. show_trig (int x, int y, int dx, int dy, int color)
  208. {
  209.     gr_color (color);
  210.     gr_move (x-dx, y);
  211.     gr_draw (x+dx, y);
  212.     gr_draw (x,    y-dy);
  213.     gr_draw (x-dx, y);
  214. }
  215.